/**
 * CRM模块类型定义
 */

// 客户信息
export interface Customer {
  id?: number
  name: string
  legal_person?: string
  phone?: string
  industry?: string
  industry_name?: string // 行业名称（后端返回）
  scale?: string
  scale_name?: string // 企业规模名称（后端返回）
  source?: number
  source_name?: string // 客户来源名称（后端返回）
  region?: string[]
  province?: string
  city?: string
  district?: string
  address?: string
  type: number
  status: number // 1-潜在客户 2-跟进中 3-已合作 4-公海客户 5-已流失
  customer_status?: number // 客户会员状态
  customer_status_name?: string // 客户会员状态名称（后端返回）
  cooperation_time?: number // 合作时间（Unix时间戳）
  user_id: number
  user_name?: string
  department_id?: number
  dept_name?: string
  contacts?: Contact[]
  followup_stats?: any
  order_stats?: any
  create_time?: string
  update_time?: string
  // 计算属性（向下兼容）
  is_cooperated?: boolean // 由 status === 3 计算得出
  is_public?: boolean // 由 status === 4 计算得出
}

// 联系人信息
export interface Contact {
  id?: number
  customer_id: number
  name: string
  position?: string
  phone?: string
  wechat?: string
  email?: string
  is_primary: boolean
  status: number
  user_id: number
  user_name?: string
  create_time?: string
  update_time?: string
}

// 跟进记录
export interface Followup {
  id?: number
  customer_id: string
  followup_type: number
  followup_time: string
  content: string
  next_followup_time?: string
  attachment?: string
  user_id: number
  user_name?: string
  create_time?: string
  update_time?: string
}

// 业务订单
export interface Order {
  id?: number
  customer_id: string
  order_type: number
  title: string
  description?: string
  amount: number
  status: number
  payment_status: number
  contract_status: number
  delivery_time?: string
  contract_file?: string
  attachment?: string
  user_id: number
  user_name?: string
  create_time?: string
  update_time?: string
}

// 付款记录
export interface Payment {
  id?: number
  order_id: string
  amount: number
  payment_type: number
  payment_time: string
  remark?: string
  status: number
  attachment?: string
  user_id: number
  user_name?: string
  create_time?: string
  update_time?: string
}

// 审核记录
export interface Review {
  id?: number
  review_type: number
  target_id: number
  target_type?: string
  original_data?: string
  new_data?: string
  status: number
  user_id: number
  user_name?: string
  reviewer_id?: number
  reviewer_name?: string
  review_comment?: string
  review_remark?: string
  review_time?: string
  create_time?: string
  update_time?: string
}

// 客户审核记录
export interface CustomerReview {
  id?: number
  customer_id: number
  customer_name?: string
  legal_person?: string // 法人
  user_id: number
  user_name?: string
  review_type: number // 1-新增 2-编辑
  original_data?: string
  new_data: string
  status: number // 1-待审核 2-审核通过 3-审核驳回
  review_user_id?: number
  review_time?: string
  review_remark?: string
  create_time?: string
  update_time?: string
  category?: string // 审核类别
  review_type_text?: string // 审核类型文本
}

// 联系人审核记录
export interface ContactReview {
  id?: number
  contact_id: number
  contact_name?: string
  customer_id: number
  customer_name?: string
  user_id: number
  user_name?: string
  review_type: number // 1-新增 2-编辑 3-删除
  original_data?: string
  new_data?: string
  status: number // 1-待审核 2-审核通过 3-审核驳回
  review_user_id?: number
  review_time?: string
  review_remark?: string
  create_time?: string
  update_time?: string
}

// 分页参数
export interface PaginationParams {
  page: number
  limit: number
  total?: number
}

// 查询参数
export interface QueryParams {
  keyword?: string
  status?: number
  type?: number
  start_time?: string
  end_time?: string
  user_id?: number
  department_id?: number
}

// API响应格式
export interface ApiResponse<T = any> {
  code: number
  message: string
  data: T
}

// 列表响应格式
export interface ListResponse<T> {
  list: T[]
  total: number
  page: number
  limit: number
}

// 选项类型
export interface Option {
  value: number | string
  label: string
}
